🧪 Stock Strategy Backtester
Pick a stock and backtest MA cross, RSI, MACD and 3 more rules on real Korean, US and Japanese prices (Yahoo Finance), dividends and tax included. Not advice.
Strategy and costs
Decided on the bar close, filled at the next openBacktest result
Price and trades
Where the rule stands now
Trade and risk statistics
| Average winner | – |
| Average loser | – |
| Payoff ratio (avg win ÷ avg loss) | – |
| Best trade | – |
| Worst trade | – |
| Longest losing streak | – |
| Average holding time | – |
| Return with zero costs | – |
| Return lost to costs | – |
| Return without dividends (price only) | – |
| Added by reinvested dividends | – |
| Annual volatility (strategy / hold) | – |
| Sharpe ratio (strategy / hold, risk-free 0) | – |
Equity curve
Year-by-year returns
| Year | Strategy | Buy & hold | Difference | Trades closed |
|---|---|---|---|---|
| – | ||||
Each year compares the equity on its last closed bar with the previous year’s last value (dividends reinvested). The first and last years may be partial.
Trade list
| # | Entry | Entry price | Exit | Exit price | Return | Held |
|---|---|---|---|---|---|---|
| – | ||||||
Click a number to move the price chart to that trade. Fill prices are actual (unadjusted) prices plus slippage; returns are after fees and tax on both sides and include dividends received while holding, reinvested.
Nearby-parameter check (overfitting test)
| – |
Total return of the same test re-run with nearby parameter values. If only the centre cell looks good and its neighbours do not, the setting probably fits the past by chance. Click a cell to switch to it.
All 6 strategies compared
| Strategy (defaults) | Return | CAGR | MDD | CAGR ÷ MDD | Win rate | PF | Trades | Exposure |
|---|
Each strategy runs with its default parameters on the same stock, period and costs. Click a name to switch to it. CAGR ÷ MDD is annual return per unit of drawdown; higher means the return came with less pain.
Same strategy on other stocks
| Stock | ||||||
|---|---|---|---|---|---|---|
| Pick a group and press the button to apply the current strategy, parameters and period to every stock in it. | ||||||
Click a stock to open its full result above. The lists hold today’s large caps, so companies that shrank or disappeared are missing (survivorship bias).
Reading a backtest honestly
- Past results are not future results. When the market changes character, the same rule behaves differently.
- Fees, taxes and slippage matter. Korean shares pay securities transaction tax on every sale, so the more a strategy trades, the more it loses to costs.
- Tuning parameters until they fit the past (overfitting) usually stops working afterwards. Use the nearby-parameter check to see whether similar values give similar results.
- Signals use closed bars only and fill at the next bar’s open. No future data is used, but on days with a big gap between the previous close and the next open, the fill can be far from the price that triggered the signal.
- Returns use the adjusted close (dividends and splits), assuming each dividend is reinvested in full before tax. Dividend tax, capital-gains tax and currency-exchange costs are not included. Indices are price indices without dividends.
- The lists in “Same strategy on other stocks” are today’s large caps. Companies that shrank or vanished are missing, so results tend to look better than reality (survivorship bias).